Motion estimation and compensation are widely used in video compression to exploit the temporal redundancy included in a video sequence. Motion information is typically included in motion vectors. A motion vector is the displacement between the current block and its temporal correspondence in the reference frame(s). Such motion information is transmitted, conveyed, and/or otherwise delivered to the decoder as overhead. To reduce the overhead bits used for motion information, various predictive coding approaches are used to encode the motion vector of each block by exploiting the correlations among neighboring motion vectors.
In the current state of the art video coding standard, namely the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4) Part 10 Advanced Video Coding (AVC) Standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 Recommendation (hereinafter the “MPEG-4 AVC Standard”), a motion vector is predicted by the median of its spatial causal neighboring motion vectors.
In a first prior art approach, the motion vector predictor selection procedure is incorporated into the rate-distortion optimization of a coding block, which is called motion vector competition (MVComp). In MVComp, a coding block has a set of motion vector predictor candidates. This candidate set is composed of motion vectors of spatially or temporally neighboring blocks. The best motion vector predictor will be selected from the candidate set based on the rate-distortion optimization. The index of the motion vector predictor in the set will be explicitly transmitted to the decoder if the set has more than one candidate. However, transmitting this index may disadvantageously consume a lot of bits.